一、app 目錄
應用程式核心 Class 放置的主要目錄利用 PSR-4標準自動載入,裡面子目錄:
- Console
- 目錄內可包含自訂義的 Artisan 指令(使用 make:command 產生自定義指令)
- Kernel.php 控制台核心,可註冊自定義 Artisan 指令, 和已定義的排成任務
- Exceptions
- 放置應用程式的異常處理程序
- 有自定義的異常紀錄要呈現或記錄log,可修改在此目錄下的 Handler 類別
- Http
- 放置 Controller, Middleware, Resource等處理用戶請求、過濾中介層、回傳內容調整 Class
- Controllers 目錄, 放置控制器 Class, 處理油路由轉發的請求
- Middleware 目錄, 放置中介層可在接收與回傳給用戶時做動作, e.g. 用戶身分檢查、過濾特殊關鍵字等
- Resource 目錄, 可定義 API 回傳格式, 隱藏資料庫欄位
- Models
- laravel 預設放置 model 位置, 使用者可以另外自訂
- Providers
- 放置應用程式的服務提供者, 在應用程式啟動時會聯繫服務到容器、註冊事件者(Class 內主要有 register, boot 兩種方法)
- Events
- 預設不存在, 使用 event:generate 或 make:event 指令後才會被建立
- 目錄主要放置事件類別的 Class
- Jobs
- 預設不存在, 使用 make:job 指令後會建立目錄
- 目錄主要放置佇列(Queue)任務的 Class
- Listeners
- 預設不存在, 使用 event:generate 或 make:listener 指令後才會被建立
- 目錄內包含事件監聽器的 Class
- Mail
- 預設不存在, 使用 make:mail 指令後才會被建立
- Notifications
- 預設不存在, 使用 make:notification 指令後才會被建立
- 包含應用程式傳送通知的 Class
- Policies
- 預設不存在, 使用 make:policy 指令後才會被建立
- 放置應用程式授權相關 Class
二、bootstrap
- 放置啟動框架和設定自動載入
- 包含一個 cache 目錄, 內有對優化應用程式所產生的檔案
三、config
- 內容包含應用程式的配置設定檔 e.g. 預設資料的連線方式
四、databese
- 包含 migrate、factory 和 seeders(資料庫遷移檔、假資料產生、將假資料寫入資料庫中的 Class)
五、public
- 網站應用程式入口(像是 apache htdocs 目錄), 目錄內包含前端共用資源, 編譯好的 JS(VUE), CSS(SASS) 檔案
六、resources
- 放置模板檔案(blade)
- LESS, SASS, VUE 等原始未被打包的檔案
- 系統語言包
七、routes
- 放置應用程式路由定義檔
- 預設包含 web.php(網站路由), api.php(API 路由), console.php(指令路由)
八、storage
- 目錄包含編譯後的 Blade 模板、基於檔案的 session、檔案快取和其他框架生成的檔案
九、test
十、vendor
其他零星檔案
- editorconfig
- laravel 5.5 以上才有
- 提供 Laravel 的編寫標準給 IDE 編輯器
- .env, .env.example
- .gitignore, .gitattributes
- artisan
- composer.json, composer.lock
- package.json
- phpunit.xml
- PHPUnit 組態檔, PHPUnit 為 Laravel 內建的測試工具
- readme.md
- 提供 Laravel 應用程式的簡介, 檔案格式為 Markdown
- server.php
- 後備伺服器, 試著讓功能較差的伺服器也可以預覽 Laravel 應用程式
- webpack.mix.js